# import random
# # TODO random.random()	实数相关	用于生成一个0到1的随机浮点数: [0, 1)
# for i in range(3):
#     print(random.random())
# # TODO random.uniform(a,b)		生成[a,b]或[b,a]之间的均匀分布随机浮点数
# print(random.uniform(1, 3))
# print(random.randint(1, 99999))
# print('%06d' % random.randint(1, 99999))
# # TODO random.randrange(a,b,step) 生成[a,b)的随机整数，第三个参数可以指定步长
# print(random.randrange(1 , 10))
# print(random.randrange(1, 10, 2))
# # TODO
# # random.choice(seq)
# # 序列相关
# # 从序列中随机选择一个元素，若序列为空
# # list
# print(random.choice([1 , 2, 3 , 'a', 'b', 'c']))
# # str
# print(random.choice('abcdefg'))
# # tuple
# print(random.choice((1, 2, 3)))
# list1 = [1, 2, 3, 4, 'a', 'b']
# random.shuffle(list1)
# print(list1)
# # str1 = '{abcdef:}'
# # random.shuffle(str1)
# # TODO random.sample(seq,k) 从序列中随机选择k个元素返回，原序列不变。
# print(random.sample([1,2,3,4], 4))
# # TODO random.seed(n=none)  初始化随机熵池。
# # random.seed(2)
# # print(random.randint(1, 999999))
# import  time
# # TODO time.time()	返回一个距Epoch的秒数，是浮点数
# print(time.time())
# while True:
#     print(time.time())
    # TODO time.gmtime(seconds)	将秒数转化为年月日时分秒，以UTC时间为标准。 + 8
#
# import time
# print(time.gmtime())
# # TODO time.localtime(seconds)	将秒数转化为年月日时分秒，以当地时间为标准
# struct_time = time.localtime()
# print(type(struct_time))
# print(time.localtime(1655175014.9964924))
# # TODO time.ctime(seconds)	返回年月日时分秒的字符串。
# print(time.ctime())
# # TODO time.asctime(tuple)	从struct_time返回年月日时分秒字符串。
# struct_time = time.localtime()
# print(time.asctime(struct_time))
#  TODO time.strftime(fmt,t)	按照fmt格式将struct_time转化成字符串。
# # struct_time = time.localtime()
# print(time.strftime('%Y/%m/%d %H:%M:%S', struct_time))
# print(time.strftime('%Y年%m月%d日 %H:%M:%S', struct_time))
#
# # TODO time.strptime(str,fmt)	将年月日时分秒的字符串按照fmt解析成struct_time结构。
# # print(time.strptime('2022年06月14日 11:14:01', '%Y年%m月%d日 %H:%M:%S'))
# # datetime 类
# from datetime import datetime
# # trptime(date_string, format))  从字符串时间 转化为 datetime对象时间
# import  re
# # # TODO search
# # re_obj = re.search('iphone', '苹果手机iphone')
# # print(re_obj)
# #
# # #re_obj.group()
# # print(re_obj.group())
# #
# # # TODO findall() 匹配所以的, 返回列表
# # lists = re.findall('iphone', '苹果手机iphone苹果手机iphone苹果手机iphone')
# # print(lists)
# # 原生字符
# # re_obj = re.search('abc', 'helloabcedfg')
# # print(re_obj)
# #元字符
# print(re.search('he', 'hello').group())
# print(re.search('he' , 'he-lo').group())
# print(re.search('he.', 'he/lo').group())
# print(re.search('he.' , 'henlo').group())
# # [ ]匹配[ ]中列举的字符
# print(re.search('he[123456abc=sa]', 'he2').group())
# print(re.search('he[123456abc=sa]', 'he2').group())
# # print(re.search('he[123456abc=sa]', 'he+').group())
# print(re.search('he[0-9a-zA-Z]', 'hexxx').group())
# print(re.search('he[0-9a-zA-Z]', 'heFxx').group())
# print(re.search('he[0-9a-zA-Z]', 'he1030').group())
#
# #\d匹配数字, 即0-9 = [0-9]
# print(re.search('he\d', 'he1').group())
# print(re.search('he\d', 'he9').group())
# print(re.search('he[0-9]',' he0').group())
# print(re.search('he[0-9]',' he1').group())
# # \D匹配非数字，即不是数字
# print(re.search('he\D', 'hea').group())
# print(re.search('he\D', 'he-').group())
# print(re.search('he\D', 'he<>').group())
# # print(re.search('he\D', 'he0').group())
# # \s匹配空白，即 空格，tab键
# print(re.search('he\s', 'he xsxdfd').group())
# print(re.search('he\s', 'he xsxd').group())
# print(re.search('he\s', 'he\nxsxdfd').group())
# print(re.search('he\s', 'he\rxsxdfd').group())
# # print(re.search('he\s', 'he12xsxdfd').group())
# # \w匹配非特殊字符，即a-z、A-Z、0-9、_、汉字　　［a-zA-Z0-9_\u4e00-\u9fa5］
# print(re.search('he\w', 'hexx').group())
# print(re.search('he\w', 'he你好').group())
# print(re.search('he\w', 'he1').group())
# # print(re.search('he\w', 'he*').group())
# print(re.search('[\u4e00-\u9fa5][\u4e00-\u9fa5]', '132天气').group())
# print(re.search('he\w\w', 'he1ss').group())
# * 匹配前一个字符出现0次或者无限次，即可有可无  = {0,}
print(re.search('he\w', 'helkfldjkl').group())
# hel hello he
# print(re.search('he\w*', 'hello').group())









